// Promise封装Ajax
function ajax(_url, _data, _method) {
    // 设置GET请求为默认请求
    let method = _method || "GET";
    // POST请求需要在send里面传数据，GET请求就直接默认为null
    let data = _data || null;

    // 返回Promise对象,才能.then
    return new Promise((resolve, reject) => {
        // 实例化一个XMLHttpRequest
        let xhr = new XMLHttpRequest();

        // 处理GET的url参数，如果请求方式method的是GET，就用get的地址，要不然用post
        if (method.toUpperCase() == "GET") {
            let str = "?";
            // 处理get请求的参数
            for (let k in data) {
                str += `${k}=${data[k]}&`;
            };
            str = str.slice(0, -1);
            xhr.open(method, _url + str);
            // let str = "?";
            // for (let k in data) {
            //   str += `${k}=${data[k]}&`;
            // }
            // str = str.slice(0, -1);

            // // 设置get请求地址
            // xhr.open(method, _url + str);
        } else {
            xhr.open(method, _url);
        }

        // 设置默认请求头
        // 设置请求头为JSON格式
        xhr.setRequestHeader("Content-Type", "application/json");
        xhr.send(JSON.stringify(data));
        // 监听状态
        xhr.addEventListener("readystatechange", () => {
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    // console.log(xhr.responseText); //获取后台的文本格式
                    resolve(JSON.parse(xhr.responseText)); // 将后台返回的文本转成JSON对象
                } else {
                    // 拒绝
                    reject(JSON.parse(xhr.responseText));
                }
            }
        });
    });
}